﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Loja.Banco;

namespace Loja.Aplicação
{
    class UsuarioControle
    {

        public LOJA banco { get; set; }

        public UsuarioControle(LOJA banco)
        {
            this.banco = banco;
        }

        public void Salvar(Usuario usuario)
        {
            banco.AddToUsuario(usuario);
            banco.SaveChanges();
        }

        public void Atualizar(Usuario usuario)
        {            
            banco.SaveChanges();
        }
        /*
        public IEnumerable<Usuario> Listar()
        {
            return banco.Usuario.ToList();
        }
        */

        public Object Listar()
        {
            var usuarioListar = (from x in banco.Usuario
                                 where x.Desativado.Equals(false)
                                 select x).ToList();

            return (Object)usuarioListar;
        }

        public Object ListarUsuarioCampo(String campo)
        {
            var usuarioListar = (from x in banco.Usuario
                                  where x.Nome.Contains(campo)
                                  && x.Desativado.Equals(false)
                                 select x).ToList();
            return (Object)usuarioListar;
        }

        public void Alterar(Usuario usuario)
        {
            Usuario usuarioAlterar = (from x in banco.Usuario
                                      where x.Usuario_ID == usuario.Usuario_ID
                                      select x).First();

            usuarioAlterar = usuario;

            banco.AddToUsuario(usuarioAlterar);
            banco.SaveChanges();

        }

        public void Excluir(Usuario usuario)
        {
            Usuario usuarioExcluir = (from x in banco.Usuario
                                      where x.Usuario_ID == usuario.Usuario_ID
                                      select x).First();

            usuarioExcluir.Desativado = false;

            banco.AddToUsuario(usuarioExcluir);
            banco.SaveChanges();
        }

        public Usuario Buscar(String login)
        {
            var usuarioBuscar = (from x in banco.Usuario
                                      where x.Login == login
                                      select x).First();     

            return usuarioBuscar;

        }

        public Usuario Buscar(Int32 usuario)
        {
            Usuario usuarioBuscar = (from x in banco.Usuario
                                     where x.Usuario_ID == usuario
                                     select x).First();
            return usuarioBuscar;

        }

        public Boolean ProcuraUser(String nome)
        {
            Int32 qt = (from x in banco.Usuario
                        where x.Login == nome
                        select x).Count();

            if (qt > 0)
                return true;
            else
                return false;
        }

        public Boolean Login(String login, String senha)
        {
            Int32 qt = (from x in banco.Usuario
                        where x.Login == login && x.Senha == senha
                        select x).Count();

            if (qt > 0)
                return true;
            else
                return false;
        }


    }
}